package com.mingshine.cloud.test;
 
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
/**
 * 队列配置类
 * @Class QueueConfig
 * @Author 作者姓名:LiuXing
 * @Version 1.0
 * @Date 创建时间：2019-05-20 17:03
 * @Direction 类说明
 */
 
//@Configuration
public class QueueConfig {
 
 
    //直连队列
    public static final String QUEUE_DIRECT_NAME = "direct_queue";
 
    //广播队列1,2：因为广播指的是广播到所有绑定到此路由的对列
    public static final String QUEUE_FANOUT_NAME1 = "fanout_queue1";
    public static final String QUEUE_FANOUT_NAME2 = "fanout_queue2";
 
    //匹配队列
    public static final String COM_TOPIC_QUEUE_LIU = "com.topic.queue.liu";
    public static final String COM_TOPIC_QUEUE_XING = "com.topic.queue.xing";
 
 
    /***
     * 创建消息队列，这队列是会被注册到【交换机--》路由键】里面
     * @return
     */
    @Bean
    public Queue DirectQueue() {
        /**
         durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
         exclusive  表示该消息队列是否只在当前connection生效,默认是false
         auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
         */
        return new Queue( QUEUE_DIRECT_NAME ,true,false,false);
    }
 
    /***
     * 广播队列 1
     * @return
     */
    @Bean
    public Queue fanoutQueue1() {
        /**
         durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
         exclusive  表示该消息队列是否只在当前connection生效,默认是false
         auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
         */
        return new Queue(QUEUE_FANOUT_NAME1 ,true,false,false);
    }
 
    /***
     * 广播队列 2
     * @return
     */
    @Bean
    public Queue fanoutQueue2() {
        /**
         durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
         exclusive  表示该消息队列是否只在当前connection生效,默认是false
         auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
         */
        return new Queue(QUEUE_FANOUT_NAME2 ,true,false,false);
    }
 
 
    /***
     * 匹配队列 - liu
     * @return
     */
    @Bean
    public Queue topicQueueLiu() {
        /**
         durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
         exclusive  表示该消息队列是否只在当前connection生效,默认是false
         auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
         */
        return new Queue( COM_TOPIC_QUEUE_LIU  ,true,false,false);
    }
 
 
    /***
     * 匹配队列 - xing
     * @return
     */
    @Bean
    public Queue topicQueueXing() {
        /**
         durable="true" 持久化 rabbitmq重启的时候不需要创建新的队列
         exclusive  表示该消息队列是否只在当前connection生效,默认是false
         auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
         */
        return new Queue( COM_TOPIC_QUEUE_XING ,true,false,false);
    }
 
}